RT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<list>
using namespace std;

//template<typename T>
//void removeDuplicates(list<T>& aList)
//{
//	T curValue;
//	typename list<T>::iterator cur, p;
//	cur = aList.begin();
//	while (cur != aList.end())
//	{
//		curValue = *cur;
//		//空白行 1
//		p = ++cur;
//		while (p != aList.end())
//		{
//			if (*p == curValue)
//			{
//				//空白行 2;
//				p == cur ? cur = p = aList.erase(p) : p = aList.erase(p);
//			}
//			else
//			{
//				p++;
//			}
//		}
//	}
//}

//int main()
//{
//	list<int> l;
//	l.push_back(1);
//	l.push_back(2);
//	l.push_back(2);
//	l.push_back(3);
//	l.push_back(4);
//	l.push_back(4);
//	removeDuplicates(l);
//
//	list<int>::iterator it = l.begin();
//	while (it != l.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//	return 0;
//}

//#include<vector>
//#include<stack>
//
//class Solution {
//public:
//    bool IsPopOrder(vector<int> pushV, vector<int> popV) {
//        stack<int> st;
//        auto itpush = pushV.begin();
//        auto itpop = popV.begin();
//
//        while (itpop != popV.end())
//        {
//            if (!st.empty() && st.top() == popV.front())
//            {
//                st.pop();
//                itpop++;
//            }
//            else
//            {
//                st.push(*itpush);
//                itpush++;
//            }
//        }
//
//        return st.empty();
//    }
//};
//
//int main()
//{
//	vector<int> v1;
//	v1.push_back(1);
//	v1.push_back(2);
//	v1.push_back(3);
//	v1.push_back(4);
//	v1.push_back(5);
//
//	vector<int> v2;
//	v2.push_back(4);
//	v2.push_back(5);
//	v2.push_back(3);
//	v2.push_back(2);
//	v2.push_back(1);
//
//	Solution s;
//	s.IsPopOrder(v1, v2);
//	return 0;
//}
//
//

//#include<vector>
//#include<string>
//#include<stack>
//
//class Solution {
//public:
//    int evalRPN(vector<string>& tokens) {
//        //操作数就入栈
//        //操作符就取栈顶的两个元素计算再入栈(注意先取的是右操作数)
//        stack<int> st;
//        auto it = tokens.begin();
//        while (it != tokens.end())
//        {
//            if (*it == "+" ||
//                *it == "-" ||
//                *it == "*" ||
//                *it == "/")
//            {
//                int right = st.top();
//                st.pop();
//                int left = st.top();
//                st.pop();
//                switch ((*it)[0])
//                {
//                case '+':
//                    st.push(left + right);
//                    it++;
//                    break;
//                case '-':
//                    st.push(left - right);
//                    it++;
//                    break;
//                case '*':
//                    st.push(left * right);
//                    it++;
//                    break;
//                case '/':
//                    st.push(left / right);
//                    it++;
//                    break;
//                }
//            }
//            else
//            {
//                st.push(stoi(*it));
//                it++;
//            }
//        }
//        return st.top();
//    }
//};
//
//
//int main()
//{
//    vector<string> vs;
//    vs.push_back("2");
//    vs.push_back("1");
//    vs.push_back("+");
//    vs.push_back("3");
//    vs.push_back("*");
//
//    Solution s;
//    s.evalRPN(vs);
//    return 0;
//}


#include<vector>
#include<queue>

class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        priority_queue<int> pq;
        for (auto e : nums)
        {
            pq.push(e);
        }

        k--;       //123456
        while (k--)
        {
            pq.pop();
        }
        return pq.top();
    }
};
